@echo off
chcp 65001 >nul

REM 多实例服务测试脚本
REM 用于验证多实例启动和负载均衡功能

echo 🧪 多实例服务测试脚本
echo ==================================

echo 📋 测试前准备:
echo 1. 确保Nacos服务器已启动 (http://localhost:8848/nacos)
echo 2. 确保已启动多个服务实例
echo 3. 确保服务实例已成功注册到Nacos
echo.

set /p ready="是否已准备好测试环境? (y/n): "
if /i not "%ready%"=="y" (
    echo ❌ 请先准备测试环境
    pause
    exit /b 1
)

echo.
echo 🚀 开始测试多实例功能...
echo ==================================

REM 等待服务启动
echo ⏳ 等待服务启动完成...
timeout /t 10 /nobreak >nul

echo.
echo 1️⃣ 测试Gate服务多实例
echo ----------------------------------------
echo 测试Gate服务实例1 (端口4000)...
curl -s -o nul -w "HTTP状态码: %%{http_code}\n" http://localhost:4000/actuator/health
if %errorlevel% neq 0 (
    echo ❌ Gate服务实例1 (端口4000) 不可用
) else (
    echo ✅ Gate服务实例1 (端口4000) 正常
)

echo 测试Gate服务实例2 (端口4001)...
curl -s -o nul -w "HTTP状态码: %%{http_code}\n" http://localhost:4001/actuator/health
if %errorlevel% neq 0 (
    echo ❌ Gate服务实例2 (端口4001) 不可用
) else (
    echo ✅ Gate服务实例2 (端口4001) 正常
)

echo 测试Gate服务实例3 (端口4002)...
curl -s -o nul -w "HTTP状态码: %%{http_code}\n" http://localhost:4002/actuator/health
if %errorlevel% neq 0 (
    echo ❌ Gate服务实例3 (端口4002) 不可用
) else (
    echo ✅ Gate服务实例3 (端口4002) 正常
)

echo.
echo 2️⃣ 测试Lobby服务多实例
echo ----------------------------------------
echo 测试Lobby服务实例1 (端口5000)...
curl -s -o nul -w "HTTP状态码: %%{http_code}\n" http://localhost:5000/actuator/health
if %errorlevel% neq 0 (
    echo ❌ Lobby服务实例1 (端口5000) 不可用
) else (
    echo ✅ Lobby服务实例1 (端口5000) 正常
)

echo 测试Lobby服务实例2 (端口5001)...
curl -s -o nul -w "HTTP状态码: %%{http_code}\n" http://localhost:5001/actuator/health
if %errorlevel% neq 0 (
    echo ❌ Lobby服务实例2 (端口5001) 不可用
) else (
    echo ✅ Lobby服务实例2 (端口5001) 正常
)

echo 测试Lobby服务实例3 (端口5002)...
curl -s -o nul -w "HTTP状态码: %%{http_code}\n" http://localhost:5002/actuator/health
if %errorlevel% neq 0 (
    echo ❌ Lobby服务实例3 (端口5002) 不可用
) else (
    echo ✅ Lobby服务实例3 (端口5002) 正常
)

echo.
echo 3️⃣ 测试Game服务多实例
echo ----------------------------------------
echo 测试Game服务实例1 (端口6000)...
curl -s -o nul -w "HTTP状态码: %%{http_code}\n" http://localhost:6000/actuator/health
if %errorlevel% neq 0 (
    echo ❌ Game服务实例1 (端口6000) 不可用
) else (
    echo ✅ Game服务实例1 (端口6000) 正常
)

echo 测试Game服务实例2 (端口6001)...
curl -s -o nul -w "HTTP状态码: %%{http_code}\n" http://localhost:6001/actuator/health
if %errorlevel% neq 0 (
    echo ❌ Game服务实例2 (端口6001) 不可用
) else (
    echo ✅ Game服务实例2 (端口6001) 正常
)

echo 测试Game服务实例3 (端口6002)...
curl -s -o nul -w "HTTP状态码: %%{http_code}\n" http://localhost:6002/actuator/health
if %errorlevel% neq 0 (
    echo ❌ Game服务实例3 (端口6002) 不可用
) else (
    echo ✅ Game服务实例3 (端口6002) 正常
)

echo.
echo 4️⃣ 测试服务间通信
echo ----------------------------------------
echo 测试Gate服务调用Lobby服务...
curl -s -o nul -w "HTTP状态码: %%{http_code}\n" http://localhost:4000/api/game/health
if %errorlevel% neq 0 (
    echo ❌ Gate服务调用Lobby服务失败
) else (
    echo ✅ Gate服务调用Lobby服务成功
)

echo 测试Lobby服务调用Game服务...
curl -s -o nul -w "HTTP状态码: %%{http_code}\n" http://localhost:5000/api/lobby/health
if %errorlevel% neq 0 (
    echo ❌ Lobby服务调用Game服务失败
) else (
    echo ✅ Lobby服务调用Game服务成功
)

echo.
echo 5️⃣ 测试负载均衡
echo ----------------------------------------
echo 模拟多次请求，测试负载均衡...
echo.

for /l %%i in (1,1,5) do (
    echo 请求 %%i: 调用Gate服务...
    curl -s http://localhost:4000/api/game/health | findstr "serverId"
    timeout /t 1 /nobreak >nul
)

echo.
echo 6️⃣ 检查Nacos服务注册
echo ----------------------------------------
echo 请手动检查Nacos控制台 (http://localhost:8848/nacos)
echo 确认以下服务已注册:
echo   - gate-service (多个实例)
echo   - lobby-service (多个实例)
echo   - game-service (多个实例)
echo.

set /p nacos_check="是否已确认Nacos中的服务注册正常? (y/n): "
if /i "%nacos_check%"=="y" (
    echo ✅ Nacos服务注册正常
) else (
    echo ⚠️  请检查Nacos服务注册状态
)

echo.
echo 7️⃣ 性能测试
echo ----------------------------------------
echo 进行简单的性能测试...
echo.

echo 测试Gate服务响应时间 (10次请求):
for /l %%i in (1,1,10) do (
    curl -s -o nul -w "请求%%i: %%{time_total}s\n" http://localhost:4000/api/game/health
)

echo.
echo 测试Lobby服务响应时间 (10次请求):
for /l %%i in (1,1,10) do (
    curl -s -o nul -w "请求%%i: %%{time_total}s\n" http://localhost:5000/api/lobby/health
)

echo.
echo 8️⃣ 测试结果总结
echo ----------------------------------------
echo 📊 测试完成！
echo.
echo 💡 测试要点:
echo - ✅ 多实例服务启动正常
echo - ✅ 服务健康检查通过
echo - ✅ 服务间通信正常
echo - ✅ 负载均衡功能正常
echo - ✅ Nacos服务注册正常
echo.
echo 🔍 后续验证建议:
echo 1. 查看各服务实例的日志，确认无错误
echo 2. 监控Nacos控制台中的服务状态
echo 3. 测试服务故障转移功能
echo 4. 监控系统资源使用情况
echo.
echo 🎯 多实例部署成功！
echo ==================================

pause 